iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
Modern Web

API 101:從基礎認識到應用的全方位指南-Swagger/Postman系列 第 15

DAY 15.使用 Postman 進行 API 測試自動化

  • 分享至 

  • xImage
  •  

Postman 的自動化測試功能

1. 測試腳本 (Test Scripts)

  • 前置腳本 (Pre-request Scripts):在發送請求之前執行的 JavaScript 腳本,用於設置環境變量、生成動態參數等。
    測試腳本 (Tests):在收到回應後執行的腳本,用於驗證回應的內容、狀態碼、數據格式等。
    2. Collection Runner
    允許你運行一組 API 請求(Collection)並執行相關的測試腳本,支持批量測試和數據驅動測試。

3. Newman
Postman 的命令行工具,可用於在本地或 CI/CD 環境中運行 Postman 集合,實現自動化測試的持續集成。

4. 集成 CI/CD 工具
Postman 支持與多種持續集成工具(如 Jenkins、GitLab CI、GitHub Actions 等)集成,實現測試的自動化執行和報告生成。


如何設置自動化測試計劃

步驟 1:安裝 Postman
確保已安裝最新版本的 Postman。可從 Postman 官方網站 下載並安裝。

步驟 2:創建 API Collection

  1. 新建 Collection
  • 打開 Postman,點擊左側欄的 "Collections"。
  • 點擊 "New Collection",為其命名(例如 "My API Tests")。
  1. 添加請求
  • 在新建的 Collection 中,點擊 "Add Request"。
  • 填寫請求名稱、HTTP 方法和 URL。
  • 配置必要的標頭、參數和請求體。

步驟 3:編寫測試腳本
1.編寫測試

  • 在請求的編輯頁面,切換到 "Tests" 標籤。
  • 使用 Postman 提供的斷言庫(如 pm.expect)編寫測試腳本。例如:
pm.test("狀態碼應為 200", function () {
    pm.response.to.have.status(200);
});

pm.test("回應時間小於 500ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(500);
});

pm.test("檢查回應數據", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property("success", true);
});
  1. 設置前置腳本(可選)
  • 如果需要在請求前設置環境變量或生成動態數據,切換到 "Pre-request Scripts" 標籤編寫腳本。

步驟 4:設置環境變量

  1. 創建環境
  • 點擊右上角的齒輪圖標,選擇 "Manage Environments"。
  • 點擊 "Add" 創建新環境(例如 "Development")。
  • 添加所需的變量,如 baseUrl, authToken 等。
    2.使用環境變量
  • 在請求的 URL 或其他字段中使用 {{variableName}} 來引用環境變量。例如:{{baseUrl}}/api/v1/users.
    步驟 5:運行 Collection
    使用 Collection Runner

1.打開 Collection Runner

  • 點擊 Postman 左上角的 "Runner" 按鈕,或在 Collection 頁面點擊 "Run"。
  1. 配置運行選項
  • 選擇要運行的 Collection 和環境。
  • 設置迭代次數(如需要進行多次測試)。
  • 如有數據文件(CSV 或 JSON),可上傳以進行數據驅動測試。
  1. 開始運行
  • 點擊 "Start Run" 開始執行測試。
  • 運行完成後,可查看詳細的測試報告。

使用 Newman 進行命令行運行

  1. 安裝 Newman
  • 確保已安裝 Node.js。
  • 使用 npm 安裝 Newman:
npm install -g newman
  1. 導出 Collection 和環境
  • 在 Postman 中選擇 Collection,點擊 "Export" 導出為 JSON 文件。
  • 同樣導出所需的環境文件。
  1. 運行測試
  • 使用以下命令運行測試:
newman run path/to/collection.json -e path/to/environment.json

步驟 6:整合 CI/CD 工具
以 Jenkins 為例:
1.安裝 Jenkins 和相關插件

  • 安裝 Jenkins,並確保其能訪問運行 Newman 的環境。
  • 安裝必要的插件,如 "Pipeline" 插件。
    2.創建 Jenkins 任務
  • 新建一個 "Pipeline" 任務。
  • 在 Pipeline 腳本中添加 Newman 命令。例如:
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/your-repo.git'
            }
        }
        stage('Install Newman') {
            steps {
                sh 'npm install -g newman'
            }
        }
        stage('Run Postman Tests') {
            steps {
                sh 'newman run path/to/collection.json -e path/to/environment.json --reporters cli,junit --reporter-junit-export results.xml'
            }
        }
    }
    post {
        always {
            junit 'results.xml'
        }
    }
}
  1. 設置觸發條件
  • 配置代碼提交或定時觸發測試運行。
  1. 查看測試報告
  • Jenkins 會收集並展示測試結果,便於持續監控和反饋。

步驟 7:設置定時測試(可選)
如果需要定期運行測試,可以使用以下方法:

  • 使用 Cron 作業
    在支持的環境中設置 Cron 任務,定期執行 Newman 命令。
  • 使用 CI/CD 定時觸發
    在 Jenkins 或其他 CI 工具中配置定時任務,例如每天凌晨運行一次測試。

最佳實踐

  1. 組織良好的 Collection 結構
    將相關 API 請求歸類到不同的文件夾中,便於管理和維護。
    使用環境和全局變量

2.避免硬編碼,使用變量管理不同環境(開發、測試、生產等)的配置。

3.數據驅動測試
使用數據文件(CSV、JSON)進行多組數據的測試,提高測試覆蓋率。

4.版本控制
將 Collection 和環境文件加入版本控制系統(如 Git),跟蹤變更歷史。

5.持續集成
將 Postman 測試整合到 CI/CD 流程中,實現自動化測試的持續運行和反饋。


上一篇
DAY 14. 如何使用 Postman 測試 API
下一篇
DAY 16.Postman API 安全測試
系列文
API 101:從基礎認識到應用的全方位指南-Swagger/Postman30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言